# -*- coding:utf8 -*- #
# -----------------------------------------------------------------------------------
# ProjectName:  smalleel-hvac-iot-test
# FileName:     command_.py
# Author  :     
# Datetime:     2023/5/24 14:20
# Description：
# -----------------------------------------------------------------------------------
import random

from common.util.randomUtil.randomUtil import random_folat
from common.util.timeUtil.timeUtil import get_timestamp


def command_params(deviceNo: str, argList: list):
    commandSet = {
        #
        "deviceNo": deviceNo,
        # 0：关闭；1开启
        "switchOn": [0, 1],
        #
        "temp": random_folat(16, 36),
        # 1：制冷；2：制热；3：送风
        "operate": [1, 2, 3],
        # 0：自动；1：低速；2：中速；3：高速
        "speed": [0, 1, 2, 3],
        # 单位：分钟
        "reportPeriod": 10,
        # 0：关闭；1：开启
        "energy": [0, 1],
        # 1：重启
        "restart": 1,
        # 0：初始状态(无任何锁定)
        # 1：开关锁定
        # 2：温度锁定
        # 3：开关、温度锁定
        # 4：模式锁定
        # 5：模式、开关锁定
        # 6：模式、温度锁定
        # 7：模式、温度、开关锁定
        # 8：风速锁定
        # 9：风速、开关锁定
        # 10：风速、温度锁定
        # 11：风速、温度、开关锁定
        # 12：风速、模式锁定
        # 13：风速、模式、开关锁定
        # 14：风速、模式、温度锁定
        # 15：风速、模式、温度、开关锁定
        "complexLock": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
        # 5 ~ 35 摄氏度，默认35
        "upper": random_folat(5, 35),
        # 5 ~ 35 摄氏度，默认5
        "floor": random_folat(5, 35),
        # 外部温度传感器使能 0：不使能；1：使能
        "cumEn": [0, 1],
        # 制冷启动计时温度设定 设定范围7一25°C以下，默认25°C
        "bCold": random_folat(7, 25),
        # 制热启动计时温度设定 设定范围35一60°C以下，默认35°C
        "bHeat": random_folat(35, 60),
    }
    paramsDict = {"deviceNo": deviceNo}
    for i in argList:
        if isinstance(commandSet[i], list):
            actionValue = random.choice(commandSet[i])
        else:
            actionValue = commandSet[i]
        paramsDict.update({i: actionValue})
    return paramsDict


if __name__ == '__main__':
    actionList = ["switchOn", "temp", "operate"]
    print(command_params(111, actionList))
